// pages/kecheng/zhihuiLife/zhihuiLife.js
const app = getApp()
Page({

        /**
         * 页面的初始数据
         */
        data: {
                url: '',
                fileurl: '',
                isloading:false,
              totalpage:0,
                pageNum:1,
                original:[],
                coursedata: [],
                isasc: true,
                sortIndex: 0,
                sortList: ['综合排序', '人气', '好评率', '价格', '价格区间'],
                itemId: 1,
                itemName: '初始名称',
                priceIndex: 0,
                isOpen: false, // 默认收起
                price: 20,
                isOrder: false,
                isSection: false,
                priceList: ['价格升序', '价格降序'],
                tagList: ['免费', '￥50以下', '￥50-100', '￥100-500', '￥500-1000', '￥1000以上'],
                currentValue: [0,1000],

                // globalTitle: '人际沟通'
        },
        // 跳转
        todetail(e){
console.log( 'e.currentTarget.dataset->',e.currentTarget.dataset);
wx.navigateTo({
        url: '/pages/kecheng/onlinekecheng/kechengdetail/kechengdetail',
        success: function (res) {
            // 通过eventChannel向被打开页面传送数据
            res.eventChannel.emit('onlineDetail', {
                id: e.currentTarget.dataset.id,
                typeid: e.currentTarget.dataset.typeid,
                teacherid: e.currentTarget.dataset.teacherid
            })
        }
    })
        },
        // 确认价格区间
        priceEnter(){
                let t=this
                let a=[]
                this.data.original.forEach(item=>{
                        if (item.discount_price>=t.data.currentValue[0]&&item.discount_price<=t.data.currentValue[1]) {
                                a.push(item)
                        }
                })
                this.setData({
                        
                        coursedata:a
                })
                this.setData({
                        isSection:false
                })
        },
        // 价格区间滑块
        onDrag(event) {
                this.setData({
                  currentValue: event.detail.value,
                });
              },
        // 获取课程
        getcourse() {
                this.setData({
                        isloading:true
                })
                wx.showLoading({
                  title: '加载数据',
                  mask:true
                })
                let t = this
                wx.request({
                        url: t.data.url + '/course/selectAllCoursetype',
                        method: "GET",
                        data: {
                                pageNum: t.data.pageNum,
                                pageSize: 4,
                           
                        },
                        success(res) {
                                console.log('res.data点击次数据->', res.data);
                                if (res.data.code == 1) {
                                        t.setData({
                                                coursedata:[...t.data.coursedata,...res.data.data.list] ,
                                                original:[...t.data.original,...res.data.data.list] ,
                                                totalpage:res.data.data.pages

                                        })
                                } else {
                                        wx.showToast({
                                                title: '获取初次课程数据失败',
                                        })

                                }

                        },complete(){
                                t.setData({
                                        isloading:false
                                })
                                wx.stopPullDownRefresh()
                                console.log("隐藏加载");
                                wx.hideLoading()
                        }
                })

        },
        // 快速排序
        swap(A, i, j) {
                const t = A[i];
                A[i] = A[j];
                A[j] = t;
        },

        /**
         *
         * @param {*} A  数组
         * @param {*} p  起始下标
         * @param {*} r  结束下标 + 1
         */
        // 人气
        renqidivide(A, p, r) {
                console.log('A->', A);
                const x = A[r - 1].renqi;
                let i = p - 1;

                for (let j = p; j < r - 1; j++) {
                        if (A[j].renqi == null) {
                                A[j].renqi = 0
                        }
                        if (A[j].renqi >= x) {
                                i++;
                                this.swap(A, i, j);
                        }


                }

                this.swap(A, i + 1, r - 1);

                return i + 1;
        },
        // 好评率快拍
        markdivide(A, p, r) {
                console.log('A->', A);
                const x = A[r - 1].mark;
                let i = p - 1;

                for (let j = p; j < r - 1; j++) {
                        if (A[j].mark == null) {
                                A[j].mark = 0
                        }
                        if (A[j].mark >= x) {
                                i++;
                                this.swap(A, i, j);
                        }


                }

                this.swap(A, i + 1, r - 1);

                return i + 1;
        },
        // 价格快拍
        divide(A, p, r) {
                console.log('A->', A);
                const x = A[r - 1].discount_price;
                let i = p - 1;

                for (let j = p; j < r - 1; j++) {
                        if (this.data.isasc) {
                                if (A[j].discount_price <= x) {
                                        i++;
                                        this.swap(A, i, j);
                                }
                        } else {
                                if (A[j].discount_price >= x) {
                                        i++;
                                        this.swap(A, i, j);
                                }
                        }

                }

                this.swap(A, i + 1, r - 1);

                return i + 1;
        },

        /**
         * 
         * @param {*} A  数组
         * @param {*} p  起始下标
         * @param {*} r  结束下标 + 1
         */
        qsort(A, p, r) {
                r = r || A.length;

                if (p < r - 1) {
                        let q = -2;
                        switch (this.data.sortIndex) {
                                case 3:
                                        q = this.divide(A, p, r);
                                        break;
                                case 2:
                                        q = this.markdivide(A, p, r);
                                        break;
                                case 1:
                                        q = this.renqidivide(A, p, r);
                                        break;

                                default:
                                        break;
                        }

                        if (q == -2) {
                                return A;
                        }
                        this.qsort(A, p, q);
                        this.qsort(A, q + 1, r);
                }

                return A;
        },
        // 价格升降序
        ascORdesc(ref) {
                let index = ref.currentTarget.dataset.index
                this.setData({
                        priceIndex: index,
                        isOrder: false
                })
                if (index == 0) {
                        this.setData({
                                isasc: true
                        })
                } else {
                        this.setData({
                                isasc: false
                        })
                }
                let aa = this.qsort(this.data.coursedata, 0, this.data.coursedata.length)
                this.setData({
                        coursedata: aa
                })
        },
        // 选中价格、价格区间后，小倒三角变色
        Order(e) {
                const index = e.currentTarget.dataset.index
                // console.log("----",index)
                if (index == 3) {
                        this.changeIsOrder()
                        // console.log("isOrder:",this.data.isOrder)
                } else if (this.data.isOrder) {
                        this.changeIsOrder()
                        // console.log("isOrder:",this.data.isOrder)
                }
                if (index == 4) {
                        this.changeIsSection()
                } else if (this.data.isSection) {
                        this.changeIsSection()
                }
        },
        // 改变isOrder方法
        changeIsOrder() {
                wx.pageScrollTo({
                        scrollTop: 0
                })
                this.setData({
                        isOrder: !this.data.isOrder
                })
        },
        // 改变isSection方法
        changeIsSection() {
                wx.pageScrollTo({
                        scrollTop: 0
                })
                this.setData({
                        isSection: !this.data.isSection
                })
        },
        getIndex(e) {
                const index = e.currentTarget.dataset.index
                this.setData({
                        sortIndex: index
                })
                console.log("getIndex函数触发", this.data.sortList[index]);
                // 人气
                if (index == 1) {
                        let aa = this.qsort(this.data.coursedata, 0, this.data.coursedata.length)
                        this.setData({
                                coursedata: aa
                        })
                }
                // 好评率
                if (index == 2) {
                        let aa = this.qsort(this.data.coursedata, 0, this.data.coursedata.length)
                        this.setData({
                                coursedata: aa
                        })
                }
        },

        /**
         * 生命周期函数--监听页面加载
         */
        onLoad(options) {
                this.setData({
                        url: app.globalData.URL,
                        fileurl: app.globalData.URL + '/file/downLoad?fileName='
                })
                let t = this
            this.getcourse()

        },

        /**
         * 生命周期函数--监听页面初次渲染完成
         */
        onReady() {

        },

        /**
         * 生命周期函数--监听页面显示
         */
        onShow() {

        },

        /**
         * 生命周期函数--监听页面隐藏
         */
        onHide() {

        },

        /**
         * 生命周期函数--监听页面卸载
         */
        onUnload() {

        },

        /**
         * 页面相关事件处理函数--监听用户下拉动作
         */
        onPullDownRefresh() {
this.setData({
        coursedata:[],
        original:[],
        pageNum:1,
        totalpage:0,
        isloading:false
})
this.getcourse()

        },

        /**
         * 页面上拉触底事件的处理函数
         */
        onReachBottom() {
if (this.data.isloading) {
        return
}
if (this.data.pageNum>=this.data.totalpage) {
        wx.showToast({
          title: '触底了',
        })
        return

}
this.setData({
        pageNum:this.data.pageNum+1
})
this.getcourse()
        },

        /**
         * 用户点击右上角分享
         */
        onShareAppMessage() {

        }
})